home *** CD-ROM | disk | FTP | other *** search
-
- Network Working Group D. Crocker (ISI)
- Request for Comments: 720 Aug 1976
- NIC #36337
- References: RFC #680
-
-
-
- Address Specification Syntax for Network Mail
-
-
- Experience with processing mail on the Arpanet has pointed up many
- addressing issues, including:
-
- 1. People's names are not the same as their addresses;
-
- 2. Mailing lists can get quite long;
-
- 3. To allow responding, messages often need to carry all of their
- mailing list with them;
-
- 4. It would be very useful to be able to send mail to files other
- than the person's primary mailbox.
-
- The current mail syntax, specified in RFC 680, does not provide a
- convenient mechanism for distinguishing between a person's name and
- their mailing address. In cases of shared directories, the ATTN: clause
- is marginally adequate; however it is completely inappropriate for
- single-user mailboxes in which the address specification is simply
- cryptic. CMU's identification tags are good examples of this problem,
- since they tend to appear to be random character sequences; the use of
- initials as tags also points up the problem. If you doubt the
- referential ambiguity of addresses, then try to use only the information
- presented, rather than random personal knowledge, to discern who
- Micro@ISI, JFH@ISI, or Greep@ISD are. By having a formal syntax for
- separately specifying names and addresses, mail display software can
- printout out name lists which only contain human names...makes things
- friendlier.
-
- The problem with long mailing lists is that, if included in the text of
- a message, they often are longer than the main part of the message.
- Group names are allowed in address fields primarily to circumvent this
- problem. However the advent of semi-automated message answering, in
- which a receiver's message system prepares address lists for reply
- messages by copying appropriate fields from the original message, makes
- the current mechanism deficient: having the group name means that the
- receiver does not have the names/addresses of the members of the group.
- A convention is generally followed, now, which has the group name be a
- pathname to the file containing the list. Though facilitative, this
- does not represent an adequate solution.
-
- And lastly is the issue of multiple mailboxes for a single user. This
- feature is probably has the largest potential for teleconferencing
- applications, with messages for an on-going discussion automatically
- placed into a separate mailbox. In the case of shared directories, this
- mechanism also would allow easy channeling into each person's own
- mailbox.
-
-
- -1-
-
-
-
- With these needs in mind, and until a more robust mail syntax and
- protocol is specified, the following general syntax is proposed to
- augment the existing syntax specified in RFC 680, for address fields
- specified by the user:
-
- Name:(Person(User-Id(Mailbox) at Host),...),; ...
-
- Where
-
- "Name" is the name of the mailing list; "Person" presumably is
- the name of the person receiving the mail;
-
- "User-Id" is their online reference name (usually their signon
- directory);
-
- "Mailbox" is a a secondary mailbox/file;
-
- and the rest conforms to RFC 680, although "@" may be used in
- place of " at " in the specification.
-
- Parentheses may be replaced by other bracketing pairs ([], {}, <>).
- Quotation marks must be used any time the string contains ambiquating
- characters, such as space or parentheses. The brackets after Name are
- used to request exclusion of the address list from the message, instead
- using text which gives the pathname to the source of the list.
-
- The formal syntax for address specification, within network mail
- actually sent, is included in the next section.
-
- Not all of a specification is required, so perhaps some examples will
- clarify things:.
-
- A normal specification, as used currently: Walker at ISI
-
- A named list, to be carried with the message, with the last
- address not a member of the list: List:Walker at
- ISI,greep@rand-isd;Action@ISI
-
- A named list, NOT to be carried with the message; the list
- contents will be replaced with a text string indicating the source
-
- of the list -- not very useful if the list is typed in by the
- user, rather than pulled from a file; therefore
- List:(Walker@ISI,greep at rand); Action at ISi will be changed to
- appear in the message as List:("/rnd/dcrocker/mail.list"); Action
- at ISI
-
- A list with personal names. separate from addresses: "Steve
- Walker"[Walker at ISI], Bob<rha@isd>
-
- A teleconferencing address list:
- Talkers:"Dave C"(DCrocker(TC.msg)@isi),...;
-
- -2-
-
-
- Formal Specification
- --------------------
-
- The following modified BNF is to serve as a direct
- addition/replacement for specifications within RFC 680. The fields
- eliminated from the existing specification are: <addressee item>,
- <address list>, <addressee>, <mailbox>, <host spec>, <attention spec>.
- <user list>, <mailbox group>, <group numbers>, and <mailbox list>.
-
- <Attention spec> can be performed through use of the person's name
- and secondary file specification. Also, <Sender> should be modified
- to be::
-
- Sender = "SENDER: " Individual
-
- And the added fields are:
-
- Address-Field = Address-List / Address-List ,,:,
- Address-Field
-
- Address-List = Individual-List / Group-List
-
- Group-List = Group-Name Group-Members
-
- Group-Name = / Name ":"
-
- Group-Members = Individual-List / L-Bracket Pathname
- R-Bracket
-
- Pathname = {A Name which can at least provide a
- human with enough information to find
- the file containing the Group-List}
-
- Individual-List = Individual / Individual
- Individual-List
- Address Specification Syntax for Network Mail
-
-
-
- Individual = Mailbox / Name L-Bracket Mailbox
- R-Bracket
-
- L-Bracket = "(" / "[" / "{" / "<"
-
- R-Bracket = ")" / "]" / "}" / ">"
-
- Mailbox = Id Secondary-File At Host
-
- Id = Name
-
- At = "" at "" / "@"
-
- Host = {An acceptable host name}
-
-
- -3-
-
-
- Secondary-File = / L-Bracket Filename R-Bracket
-
- Filename = Name
-
- Name = {An Ascii string without carriage
- return, line feed, space, '"', ",",
- ";", or any L-Bracket or R-Bracket} /
- '"' {An Ascii string with any double
- quotation marks doubled} '"'
-
- The particular L-Bracket and R-Bracket characters used must match
- each other. The requirement for quotation marks has been made more
- severe than absolutely necessary in order to simplify software
- requirments. Note also that the above specified syntax is for
- inter-entity communications and is not necessarily indicative of what
- the user types.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -4-
-